File Parsing va Data Processing
Kirish
Bash scriptingda file parsing (faylni tahlil qilish) va data processing (ma’lumotlarni qayta ishlash) — turli formatdagi fayllardan ma’lumotlarni ajratib olish, o‘zgartirish, filtrlash va tahlil qilish uchun ishlatiladi. Bu texnikalar loglarni, CSV, TXT, konfiguratsiya va boshqa fayllarni avtomatlashtirishda juda muhim.
Asosiy amaliy usullar
1. Faylni qatorma-qator o‘qish
while read -r line; do
echo "Qator: $line"
done < input.txt
2. Ma’lumotlarni ajratib olish (cut, awk, sed)
a) cut yordamida
cat users.csv | cut -d',' -f2
- Ikkinchi ustunni ajratib oladi.
b) awk yordamida
awk -F',' '{print $1 " -> " $3}' users.csv
- Birinchi va uchinchi ustunni chiqaradi.
c) sed yordamida
sed 's/error/XATO/g' log.txt
- "error" so‘zini "XATO" ga almashtiradi.
3. Filtrlash va qidirish (grep)
grep "ERROR" app.log
grep -E '^[0-9]{4}-[0-9]{2}-[0-9]{2}' log.txt
- Faqat xatoliklar yoki sana bilan boshlanuvchi qatorlarni chiqaradi.
4. CSV faylni tahlil qilish
while IFS=',' read -r id name email; do
echo "ID: $id, Name: $name, Email: $email"
done < users.csv
5. Ma’lumotlarni guruhlash va sanash
awk -F',' '{count[$2]++} END {for (name in count) print name, count[name]}' users.csv
- Ikkinchi ustun bo‘yicha guruhlab, har bir qiymat sonini chiqaradi.
6. JSON faylni jq yordamida tahlil qilish
cat data.json | jq '.users[] | .name, .email'
- Har bir user’ning name va emailini chiqaradi.
7. Fayldan unikal qiymatlarni ajratish
sort data.txt | uniq
Amaliy misollar
1. Log fayldan IP va vaqtni ajratib olish
awk '{print $1, $4}' access.log
2. Fayldagi raqamlar yig‘indisini hisoblash
awk '{sum+=$1} END {print "Yig‘indi:", sum}' numbers.txt
3. Fayldan ma’lum bir qiymatni qidirish va sanash
grep -c "ERROR" app.log
4. CSV fayldan email domenlarini ajratish
awk -F',' '{split($3,a,"@"); print a[2]}' users.csv
Xulosa
File parsing va data processing texnikalari bash skriptlarida turli formatdagi fayllardan ma’lumotlarni ajratish, filtrlash va tahlil qilish uchun juda muhim. cut, awk, sed, grep, jq kabi utilitalar yordamida murakkab ma’lumotlarni samarali boshqarish va avtomatlashtirish